<?php
include_once('../includes/definer.php');
include_once(INC.'admin/php/bootstrap.php');
include_once(INC.'admin/php/clases/FileImage.php');

if ($_POST['id']) {
    $producto = Doctrine::getTable('producto')->find($_POST['id']);
    $producto->borrarColores();
    $producto->borrarEtiquetas();
} else {
    $producto = new Producto();
}

//INFO
if ($_POST['categoria']) {
    $categoria = Doctrine::getTable('categoria')->find($_POST['categoria']);
    $producto->categoria = $categoria;
    $redireccion = $categoria->getUri();
} else {
    $redireccion = 'oferta';
}

$producto->setTitulo($_POST['tituloEs'], 'es');
$producto->setTitulo($_POST['tituloPt'], 'pt');
$producto->setTitulo($_POST['tituloEn'], 'en');

$producto->setDescripcion($_POST['descripcionEs'], 'es');
$producto->setDescripcion($_POST['descripcionPt'], 'pt');
$producto->setDescripcion($_POST['descripcionEn'], 'en');

$producto->codigo = $_POST['codigo'];
$producto->precio = $_POST['precio'];
$producto->isOferta = $_POST['isOferta'];
$producto->estado = Estado::visible();

//pdfs
if ($_FILES['manualEs']['tmp_name']) {
    $ext = explode('.', $_FILES['manualEs']['name']);
    $ext = '.'.$ext[count($ext)-1];
    $ext = strtolower($ext);
    $path = INC.'content/manuales/es/';
    $pdfNombre = $producto->getUri().$ext;
    move_uploaded_file ($_FILES['manualEs']['tmp_name'], $path.$pdfNombre);
    $producto->setManual($pdfNombre, 'es');
}
if ($_FILES['manualPt']['tmp_name']) {
    $ext = explode('.', $_FILES['manualPt']['name']);
    $ext = '.'.$ext[count($ext)-1];
    $ext = strtolower($ext);
    $path = INC.'content/manuales/pt/';
    $pdfNombre = $producto->getUri().$ext;
    move_uploaded_file ($_FILES['manualPt']['tmp_name'], $path.$pdfNombre);
    $producto->setManual($pdfNombre, 'pt');
}
if ($_FILES['manualEn']['tmp_name']) {
    $ext = explode('.', $_FILES['manualEn']['name']);
    $ext = '.'.$ext[count($ext)-1];
    $ext = strtolower($ext);
    $path = INC.'content/manuales/en/';
    $pdfNombre = $producto->getUri().$ext;
    move_uploaded_file ($_FILES['manualEn']['tmp_name'], $path.$pdfNombre);
    $producto->setManual($pdfNombre, 'en');
}

//etiquetas
foreach ($_POST['etiquetas'] as $etiqueta) {
    $producto->etiquetas[] = Doctrine::getTable('etiqueta')->find($etiqueta);
}

//colores
if (isset($_POST['colores'])) {
    $colores = array_unique($_POST['colores']);
    foreach ($colores as $color) {
        $producto->colores[] = Doctrine::getTable('color')->findOneByHex($color);
    }
}

//descripcion
$descripciones = explode('|', $_POST['descripcionEs']);
foreach ($descripciones as $value) {
    $language = 'es';
    if (!Descripcion::existe($value, $language)) {
        $descripcion = new Descripcion();
        $descripcion->value = $value;
        $descripcion->language = $language;
        $descripcion->save();
    }
}

$descripciones = explode('|', $_POST['descripcionPt']);
foreach ($descripciones as $value) {
    $language = 'pt';
    if (!Descripcion::existe($value, $language)) {
        $descripcion = new Descripcion();
        $descripcion->value = $value;
        $descripcion->language = $language;
        $descripcion->save();
    }
}

$descripciones = explode('|', $_POST['descripcionEn']);
foreach ($descripciones as $value) {
    $language = 'en';
    if (!Descripcion::existe($value, $language)) {
        $descripcion = new Descripcion();
        $descripcion->value = $value;
        $descripcion->language = $language;
        $descripcion->save();
    }
}

$producto->save();
$producto->asignarUri($_POST['tituloEs'], 'es');
$producto->asignarUri($_POST['tituloPt'], 'pt');
$producto->asignarUri($_POST['tituloEn'], 'en');

//IMAGENES
$n = (Imagen::lastId())?Imagen::lastId()+1:1;//numero al final de la imagen (Ej: imagen.1.jpg, imagen.2.jpg)
$origen = INC.'content/tmp/productos/';
$destino = INC.'content/productos/';
if (isset($_POST['newImages']) && count($_POST['newImages'])) {
    foreach ($_POST['newImages'] as $newImage) {
        $data = explode(',', $newImage);

        //Imagen thumbnail 186x130
        if (file_exists($origen.'thumbnail/'.$data[0].'.'.$data[2])) {
            if (copy($origen.'thumbnail/'.$data[0].'.'.$data[2], $destino.'thumbnail/'.$producto->getUri().'.'.$n.'.'.$data[2])) {
                unlink($origen.'thumbnail/'.$data[0].'.'.$data[2]);
            }
        } else {
            $fileImage = new FileImage($origen.$data[0].'.'.$data[2]);
            $fileImage->ajustarAncho(186);
            $fileImage->save($destino.'thumbnail/'.$producto->getUri().'.'.$n);
        }

        //Imagen  original
        if (copy($origen.$data[0].'.'.$data[2], $destino.$producto->getUri().'.'.$n.'.'.$data[2])) {
            unlink($origen.$data[0].'.'.$data[2]);
        }

        //Creo el objeto imagen y se lo asigno al producto
        $imagen = new Imagen();
        $imagen->src = $producto->getUri().'.'.$n.'.'.$data[2];
        $imagen->orden = $data[1];
        $producto->imagenes[] = $imagen;
        $n++;
    }
}
$producto->save();
header('location: '.URL.'admin/productos/'.$redireccion);
?>
